A computer network is composed of nodes connected by links. Between any two nodes in a computer network, there may be one or more paths. Thus, a message traveling through the computer network from a first node to a second node may traverse the computer network through one of several possible paths. For instance, the message may travel over a dedicated path between the first and the second nodes. Alternatively, the message may travel over a virtual private network (VPN) path through a public network.
Each path in a computer network is associated with a particular bandwidth. In general, the bandwidth of a path is a measure of how many messages may travel through the path in a given period of time. The bandwidth of a path may change over time. For instance, the bandwidth of a path may decrease if a router along the path becomes excessively overloaded, there is electrical interference along the path, and so on.
Some applications have minimum Quality of Service (QoS) bandwidth requirements when communicating over a computer network. For instance, a Voice over Internet Protocol (VoIP) application may require that its network packets be granted a minimum amount of bandwidth in order to assure high voice quality. To provide QoS requirements, a node may prioritize network packets of applications having QoS requirements when the node transmits those network packets.